\section{NFcore::System Class Reference}
\label{classNFcore_1_1System}\index{NFcore::System@{NFcore::System}}
{\tt \#include $<$NFcore.hh$>$}



\subsection{Detailed Description}
The main class that begins and runs simulations. 

This class is what runs the actual simulation. It keeps lists of all MoleculeTypes that exist and all Reactions that can operate on those moleculeTypes. It also contains the function (named sim) which runs the main simulation loop. To create a new \doxyref{System}{p.}{classNFcore_1_1System}, first add all MoleculeTypes, all reactions, then call the function \doxyref{prepareForSimulation()}{p.}{classNFcore_1_1System_6caa03d1c59dc7044d81d4666b306fe7}. Then call the sim function as many times as you like. Output is printed to the given output file and lists all observables per time according to how often you want values recorded. \begin{Desc}
\item[Author:]Michael Sneddon \end{Desc}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf System} (string {\bf name})
\item 
{\bf System} (string {\bf name}, bool {\bf useComplex})
\item 
{\bf $\sim$System} ()
\item 
string {\bf getName} () const 
\item 
bool {\bf isUsingComplex} ()
\item 
bool {\bf isOutputtingBinary} ()
\item 
double {\bf getCurrentTime} () const 
\item 
int {\bf getObservableCount} (int moleculeTypeIndex, int observableIndex) const 
\item 
{\bf Observable} $\ast$ {\bf getObservableByName} (string obsName)
\item 
double {\bf getAverageGroupValue} (string groupName, int valIndex)
\item 
{\bf ReactionClass} $\ast$ {\bf getReaction} (int rIndex)
\item 
{\bf MoleculeType} $\ast$ {\bf getMoleculeType} (int mtIndex)
\item 
{\bf MoleculeType} $\ast$ {\bf getMoleculeTypeByName} (string {\bf name})
\item 
int {\bf getNumOfMoleculeTypes} ()
\item 
{\bf Molecule} $\ast$ {\bf getMoleculeByUid} (int uid)
\item 
int {\bf getNumOfMolecules} ()
\item 
int {\bf addMoleculeType} ({\bf MoleculeType} $\ast$moleculeType)
\item 
void {\bf addReaction} ({\bf ReactionClass} $\ast$reaction)
\item 
void {\bf addNecessaryUpdateReaction} ({\bf ReactionClass} $\ast$reaction)
\item 
int {\bf createComplex} ({\bf Molecule} $\ast$m)
\item 
bool {\bf addGlobalFunction} ({\bf GlobalFunction} $\ast$gf)
\item 
{\bf GlobalFunction} $\ast$ {\bf getGlobalFunctionByName} (string fName)
\item 
void {\bf prepareForSimulation} ()
\item 
void {\bf setUniversalTraversalLimit} (int utl)
\item 
void {\bf updateGroupProperty} (char $\ast$groupName, double $\ast$value, int n\_\-values)
\item 
void {\bf updateAllGroupProperty} (double $\ast$value, int n\_\-values)
\item 
void {\bf setOutputToBinary} ()
\item 
void {\bf registerOutputFileLocation} (string filename)
\item 
void {\bf turnOnGlobalFuncOut} ()
\item 
void {\bf turnOffGlobalFuncOut} ()
\item 
void {\bf addLocalFunction} ({\bf LocalFunction} $\ast$lf)
\item 
void {\bf getLocalFunction} (string funcName) const 
\item 
void {\bf outputAllObservableNames} ()
\item 
void {\bf outputAllObservableCounts} ()
\item 
void {\bf outputAllObservableCounts} (double cSampleTime)
\item 
void {\bf printAllComplexes} ()
\item 
void {\bf printAllReactions} ()
\item 
void {\bf printAllGroups} ()
\item 
void {\bf printIndexAndNames} ()
\item 
void {\bf printAllMoleculeTypes} ()
\item 
void {\bf printAllObservableCounts} (double cSampleTime)
\item 
void {\bf purgeAndPrintAvailableComplexList} ()
\item 
void {\bf outputComplexSizes} (double cSampleTime)
\item 
void {\bf outputMoleculeTypeCountPerComplex} ({\bf MoleculeType} $\ast$m)
\item 
double {\bf outputMeanCount} ({\bf MoleculeType} $\ast$m)
\item 
double {\bf calculateMeanCount} ({\bf MoleculeType} $\ast$m)
\item 
void {\bf update\_\-A\_\-tot} (double old\_\-a, double new\_\-a)
\item 
void {\bf evaluateAllLocalFunctions} ()
\item 
void {\bf addOutputter} ({\bf Outputter} $\ast$op)
\item 
void {\bf dumpOutputters} ()
\item 
{\bf Complex} $\ast$ {\bf getComplex} (int ID\_\-complex) const 
\item 
{\bf Complex} $\ast$ {\bf getNextAvailableComplex} ()
\item 
void {\bf notifyThatComplexIsAvailable} (int ID\_\-complex)
\item 
double {\bf sim} (double time, long int sampleTimes)
\item 
double {\bf stepTo} (double stoppingTime)
\item 
void {\bf singleStep} ()
\item 
void {\bf equilibriate} (double duration)
\item 
void {\bf equilibriate} (double duration, int statusReports)
\item 
void {\bf registerRxnIndex} (int rxnId, int rxnPos, int rxnIndex)
\item 
int {\bf getRxnIndex} (int rxnId, int rxnPos) const 
\item 
void {\bf turnOff\_\-OnTheFlyObs} ()
\end{CompactItemize}
\subsection*{Static Public Attributes}
\begin{CompactItemize}
\item 
static int {\bf NULL\_\-EVENT\_\-COUNTER} = 0
\end{CompactItemize}
\subsection*{Protected Member Functions}
\begin{CompactItemize}
\item 
double {\bf get\_\-A\_\-tot} () const 
\item 
double {\bf recompute\_\-A\_\-tot} ()
\item 
double {\bf getNextRxn} ()
\item 
void {\bf outputGroupDataHeader} ()
\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
string {\bf name}
\item 
bool {\bf useComplex}
\item 
bool {\bf useBinaryOutput}
\item 
int {\bf universalTraversalLimit}
\item 
bool {\bf onTheFlyObservables}
\item 
bool {\bf outputGlobalFunctionValues}
\item 
vector$<$ {\bf MoleculeType} $\ast$ $>$ {\bf allMoleculeTypes}
\item 
vector$<$ {\bf ReactionClass} $\ast$ $>$ {\bf allReactions}
\item 
vector$<$ {\bf Complex} $\ast$ $>$ {\bf allComplexes}
\item 
queue$<$ int $>$ {\bf nextAvailableComplex}
\item 
vector$<$ {\bf Outputter} $\ast$ $>$ {\bf allOutputters}
\item 
vector$<$ {\bf GlobalFunction} $\ast$ $>$ {\bf globalFunctions}
\item 
vector$<$ {\bf LocalFunction} $\ast$ $>$ {\bf localFunctions}
\item 
vector$<$ {\bf ReactionClass} $\ast$ $>$ {\bf necessaryUpdateRxns}
\item 
double {\bf a\_\-tot}
\item 
double {\bf current\_\-time}
\item 
{\bf ReactionClass} $\ast$ {\bf nextReaction}
\item 
ofstream {\bf outputFileStream}
\item 
int $\ast$$\ast$ {\bf rxnIndexMap}
\end{CompactItemize}


\subsection{Constructor \& Destructor Documentation}
\index{NFcore::System@{NFcore::System}!System@{System}}
\index{System@{System}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}System::System (string {\em name})}\label{classNFcore_1_1System_bba58818fedf3ef9af5e28e5023e2daa}


creates a system with the given name that does not keep track dynamically of complex formation \index{NFcore::System@{NFcore::System}!System@{System}}
\index{System@{System}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}System::System (string {\em name}, bool {\em useComplex})}\label{classNFcore_1_1System_7ea6dc6d40f2c519f1a3eb55c5e4775c}


creates a system that keeps track of complex formation if the setComplex parameter is set to true \index{NFcore::System@{NFcore::System}!$\sim$System@{$\sim$System}}
\index{$\sim$System@{$\sim$System}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}System::$\sim$System ()}\label{classNFcore_1_1System_3be70bb338e3f062f821173fd15680d0}


destroys the system and cleans up all memory associated with it 

\subsection{Member Function Documentation}
\index{NFcore::System@{NFcore::System}!getName@{getName}}
\index{getName@{getName}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}string NFcore::System::getName () const\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_11395716c7875a899b5b05549e95ffa7}


\index{NFcore::System@{NFcore::System}!isUsingComplex@{isUsingComplex}}
\index{isUsingComplex@{isUsingComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool NFcore::System::isUsingComplex ()\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_8c9531facb736ba2a737ff47c6a9347c}


\index{NFcore::System@{NFcore::System}!isOutputtingBinary@{isOutputtingBinary}}
\index{isOutputtingBinary@{isOutputtingBinary}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool NFcore::System::isOutputtingBinary ()\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_e1e621848bc6856fed9ab9f282f7ab03}


\index{NFcore::System@{NFcore::System}!getCurrentTime@{getCurrentTime}}
\index{getCurrentTime@{getCurrentTime}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double NFcore::System::getCurrentTime () const\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_e7be0ad9a68a8ae51db3699b7b1f836c}


\index{NFcore::System@{NFcore::System}!getObservableCount@{getObservableCount}}
\index{getObservableCount@{getObservableCount}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int System::getObservableCount (int {\em moleculeTypeIndex}, int {\em observableIndex}) const}\label{classNFcore_1_1System_192796fa155821951bba72a4460588b7}


\index{NFcore::System@{NFcore::System}!getObservableByName@{getObservableByName}}
\index{getObservableByName@{getObservableByName}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Observable} $\ast$ System::getObservableByName (string {\em obsName})}\label{classNFcore_1_1System_2eaf0459715b8d709b8af495f02b65d6}


\index{NFcore::System@{NFcore::System}!getAverageGroupValue@{getAverageGroupValue}}
\index{getAverageGroupValue@{getAverageGroupValue}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double NFcore::System::getAverageGroupValue (string {\em groupName}, int {\em valIndex})}\label{classNFcore_1_1System_0a5cb861e7b023567725a52d00305ca5}


\index{NFcore::System@{NFcore::System}!getReaction@{getReaction}}
\index{getReaction@{getReaction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf ReactionClass}$\ast$ NFcore::System::getReaction (int {\em rIndex})\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_ca83418d50b8e82d1bf534f4ee63d5c9}


\index{NFcore::System@{NFcore::System}!getMoleculeType@{getMoleculeType}}
\index{getMoleculeType@{getMoleculeType}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf MoleculeType}$\ast$ NFcore::System::getMoleculeType (int {\em mtIndex})\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_818514d3a7987a5d8a27a67874aef00c}


\index{NFcore::System@{NFcore::System}!getMoleculeTypeByName@{getMoleculeTypeByName}}
\index{getMoleculeTypeByName@{getMoleculeTypeByName}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf MoleculeType} $\ast$ System::getMoleculeTypeByName (string {\em name})}\label{classNFcore_1_1System_bc623e9206d68c41d19fda348f53ab5c}


\index{NFcore::System@{NFcore::System}!getNumOfMoleculeTypes@{getNumOfMoleculeTypes}}
\index{getNumOfMoleculeTypes@{getNumOfMoleculeTypes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int NFcore::System::getNumOfMoleculeTypes ()\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_6f81131705fe50705826ff4b3bc0536d}


\index{NFcore::System@{NFcore::System}!getMoleculeByUid@{getMoleculeByUid}}
\index{getMoleculeByUid@{getMoleculeByUid}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Molecule} $\ast$ System::getMoleculeByUid (int {\em uid})}\label{classNFcore_1_1System_f50a72f24b62f8ac05661e8bbfc23f97}


\index{NFcore::System@{NFcore::System}!getNumOfMolecules@{getNumOfMolecules}}
\index{getNumOfMolecules@{getNumOfMolecules}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int System::getNumOfMolecules ()}\label{classNFcore_1_1System_a82f750e43ba972bce08d34feb24df43}


\index{NFcore::System@{NFcore::System}!addMoleculeType@{addMoleculeType}}
\index{addMoleculeType@{addMoleculeType}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int System::addMoleculeType ({\bf MoleculeType} $\ast$ {\em moleculeType})}\label{classNFcore_1_1System_0a6cc8f4898c6bd51ea0126d37222d2c}


\index{NFcore::System@{NFcore::System}!addReaction@{addReaction}}
\index{addReaction@{addReaction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::addReaction ({\bf ReactionClass} $\ast$ {\em reaction})}\label{classNFcore_1_1System_8ff220f854a53e14987f716d8fb3873e}


\index{NFcore::System@{NFcore::System}!addNecessaryUpdateReaction@{addNecessaryUpdateReaction}}
\index{addNecessaryUpdateReaction@{addNecessaryUpdateReaction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::addNecessaryUpdateReaction ({\bf ReactionClass} $\ast$ {\em reaction})}\label{classNFcore_1_1System_d0fce3d90743e85331daab4b6f991b52}


\index{NFcore::System@{NFcore::System}!createComplex@{createComplex}}
\index{createComplex@{createComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int System::createComplex ({\bf Molecule} $\ast$ {\em m})}\label{classNFcore_1_1System_2bb699deafba3e03b661e89efe2882e9}


\index{NFcore::System@{NFcore::System}!addGlobalFunction@{addGlobalFunction}}
\index{addGlobalFunction@{addGlobalFunction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool System::addGlobalFunction ({\bf GlobalFunction} $\ast$ {\em gf})}\label{classNFcore_1_1System_ab32ea2078ce4858926d6a24e03db168}


\index{NFcore::System@{NFcore::System}!getGlobalFunctionByName@{getGlobalFunctionByName}}
\index{getGlobalFunctionByName@{getGlobalFunctionByName}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf GlobalFunction} $\ast$ System::getGlobalFunctionByName (string {\em fName})}\label{classNFcore_1_1System_8e9719886db278111bf02d7c0df8f052}


\index{NFcore::System@{NFcore::System}!prepareForSimulation@{prepareForSimulation}}
\index{prepareForSimulation@{prepareForSimulation}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::prepareForSimulation ()}\label{classNFcore_1_1System_6caa03d1c59dc7044d81d4666b306fe7}


\index{NFcore::System@{NFcore::System}!setUniversalTraversalLimit@{setUniversalTraversalLimit}}
\index{setUniversalTraversalLimit@{setUniversalTraversalLimit}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::setUniversalTraversalLimit (int {\em utl})}\label{classNFcore_1_1System_d9b0bec150e1c3c2f030e1b24c4d925d}


\index{NFcore::System@{NFcore::System}!updateGroupProperty@{updateGroupProperty}}
\index{updateGroupProperty@{updateGroupProperty}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::updateGroupProperty (char $\ast$ {\em groupName}, double $\ast$ {\em value}, int {\em n\_\-values})}\label{classNFcore_1_1System_e05dbc6f6667582650e70b81c668d32d}


\index{NFcore::System@{NFcore::System}!updateAllGroupProperty@{updateAllGroupProperty}}
\index{updateAllGroupProperty@{updateAllGroupProperty}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::updateAllGroupProperty (double $\ast$ {\em value}, int {\em n\_\-values})}\label{classNFcore_1_1System_dd36ee7eadaa782d601dee03745ff43a}


\index{NFcore::System@{NFcore::System}!setOutputToBinary@{setOutputToBinary}}
\index{setOutputToBinary@{setOutputToBinary}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::setOutputToBinary ()}\label{classNFcore_1_1System_1d2144d992cf2de63b3b60ee553a44d5}


\index{NFcore::System@{NFcore::System}!registerOutputFileLocation@{registerOutputFileLocation}}
\index{registerOutputFileLocation@{registerOutputFileLocation}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::registerOutputFileLocation (string {\em filename})}\label{classNFcore_1_1System_602993cfca2e87ad032ec16f7cd6b010}


\index{NFcore::System@{NFcore::System}!turnOnGlobalFuncOut@{turnOnGlobalFuncOut}}
\index{turnOnGlobalFuncOut@{turnOnGlobalFuncOut}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::turnOnGlobalFuncOut ()\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_cb8be3a11cb6c4a51cac80bbf8d1361a}


\index{NFcore::System@{NFcore::System}!turnOffGlobalFuncOut@{turnOffGlobalFuncOut}}
\index{turnOffGlobalFuncOut@{turnOffGlobalFuncOut}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::turnOffGlobalFuncOut ()\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_4fc4a44063194593bc642dd833120f7f}


\index{NFcore::System@{NFcore::System}!addLocalFunction@{addLocalFunction}}
\index{addLocalFunction@{addLocalFunction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::addLocalFunction ({\bf LocalFunction} $\ast$ {\em lf})}\label{classNFcore_1_1System_3bb6f51e60e38c1e9bab6f4f0995fb77}


\index{NFcore::System@{NFcore::System}!getLocalFunction@{getLocalFunction}}
\index{getLocalFunction@{getLocalFunction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::getLocalFunction (string {\em funcName}) const\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_ed469955abd6de6472a93f81e400cb77}


\index{NFcore::System@{NFcore::System}!outputAllObservableNames@{outputAllObservableNames}}
\index{outputAllObservableNames@{outputAllObservableNames}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::outputAllObservableNames ()}\label{classNFcore_1_1System_4c14473fd54c66fc520ec9b780c79323}


\index{NFcore::System@{NFcore::System}!outputAllObservableCounts@{outputAllObservableCounts}}
\index{outputAllObservableCounts@{outputAllObservableCounts}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::outputAllObservableCounts ()}\label{classNFcore_1_1System_a30cffbd6c8143287da49285da59aa12}


\index{NFcore::System@{NFcore::System}!outputAllObservableCounts@{outputAllObservableCounts}}
\index{outputAllObservableCounts@{outputAllObservableCounts}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::outputAllObservableCounts (double {\em cSampleTime})}\label{classNFcore_1_1System_e8d39a76125abafa855b661122a9e6f2}


\index{NFcore::System@{NFcore::System}!printAllComplexes@{printAllComplexes}}
\index{printAllComplexes@{printAllComplexes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printAllComplexes ()}\label{classNFcore_1_1System_ba7affa74853733525456b3c8569403c}


\index{NFcore::System@{NFcore::System}!printAllReactions@{printAllReactions}}
\index{printAllReactions@{printAllReactions}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printAllReactions ()}\label{classNFcore_1_1System_0fe4962e857418a321a1d7004c79f9ab}


\index{NFcore::System@{NFcore::System}!printAllGroups@{printAllGroups}}
\index{printAllGroups@{printAllGroups}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printAllGroups ()}\label{classNFcore_1_1System_3e3dc899941ee95755ca33af4a20d9b9}


\index{NFcore::System@{NFcore::System}!printIndexAndNames@{printIndexAndNames}}
\index{printIndexAndNames@{printIndexAndNames}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printIndexAndNames ()}\label{classNFcore_1_1System_d00baa99ef01fedebd4b01ae7cc7f0f0}


\index{NFcore::System@{NFcore::System}!printAllMoleculeTypes@{printAllMoleculeTypes}}
\index{printAllMoleculeTypes@{printAllMoleculeTypes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printAllMoleculeTypes ()}\label{classNFcore_1_1System_a9ae72dc4ebebfd28c549ebe68112182}


\index{NFcore::System@{NFcore::System}!printAllObservableCounts@{printAllObservableCounts}}
\index{printAllObservableCounts@{printAllObservableCounts}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::printAllObservableCounts (double {\em cSampleTime})}\label{classNFcore_1_1System_e366a6a27962b327adb352fe8302d5ab}


\index{NFcore::System@{NFcore::System}!purgeAndPrintAvailableComplexList@{purgeAndPrintAvailableComplexList}}
\index{purgeAndPrintAvailableComplexList@{purgeAndPrintAvailableComplexList}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::purgeAndPrintAvailableComplexList ()}\label{classNFcore_1_1System_4f9c605be2d1f137523bedda31d4a313}


\index{NFcore::System@{NFcore::System}!outputComplexSizes@{outputComplexSizes}}
\index{outputComplexSizes@{outputComplexSizes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::outputComplexSizes (double {\em cSampleTime})}\label{classNFcore_1_1System_fd5fafc7050be6c61311904a28ebd061}


\index{NFcore::System@{NFcore::System}!outputMoleculeTypeCountPerComplex@{outputMoleculeTypeCountPerComplex}}
\index{outputMoleculeTypeCountPerComplex@{outputMoleculeTypeCountPerComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::outputMoleculeTypeCountPerComplex ({\bf MoleculeType} $\ast$ {\em m})}\label{classNFcore_1_1System_5325459fe6651693dc610204e06ed9dc}


\index{NFcore::System@{NFcore::System}!outputMeanCount@{outputMeanCount}}
\index{outputMeanCount@{outputMeanCount}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::outputMeanCount ({\bf MoleculeType} $\ast$ {\em m})}\label{classNFcore_1_1System_e6248940bb4a0df0740790b25d1f49fd}


\index{NFcore::System@{NFcore::System}!calculateMeanCount@{calculateMeanCount}}
\index{calculateMeanCount@{calculateMeanCount}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::calculateMeanCount ({\bf MoleculeType} $\ast$ {\em m})}\label{classNFcore_1_1System_b1cf553da7808c5ece73e9c84d85a6dc}


\index{NFcore::System@{NFcore::System}!update\_\-A\_\-tot@{update\_\-A\_\-tot}}
\index{update\_\-A\_\-tot@{update\_\-A\_\-tot}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::update\_\-A\_\-tot (double {\em old\_\-a}, double {\em new\_\-a})\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_e47453169e8f5cc6453121f6f2e7e640}


\index{NFcore::System@{NFcore::System}!evaluateAllLocalFunctions@{evaluateAllLocalFunctions}}
\index{evaluateAllLocalFunctions@{evaluateAllLocalFunctions}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::evaluateAllLocalFunctions ()}\label{classNFcore_1_1System_831f3467d1f92eeaec77752b58873355}


\index{NFcore::System@{NFcore::System}!addOutputter@{addOutputter}}
\index{addOutputter@{addOutputter}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::addOutputter ({\bf Outputter} $\ast$ {\em op})}\label{classNFcore_1_1System_f839dc5d0219ba24b0818344d61915f8}


\index{NFcore::System@{NFcore::System}!dumpOutputters@{dumpOutputters}}
\index{dumpOutputters@{dumpOutputters}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::dumpOutputters ()}\label{classNFcore_1_1System_cba7cfca798bb9dfa1145ca6284cd385}


\index{NFcore::System@{NFcore::System}!getComplex@{getComplex}}
\index{getComplex@{getComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Complex}$\ast$ NFcore::System::getComplex (int {\em ID\_\-complex}) const\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_8b912d2636522a6faea0885eb9f1deb7}


\index{NFcore::System@{NFcore::System}!getNextAvailableComplex@{getNextAvailableComplex}}
\index{getNextAvailableComplex@{getNextAvailableComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf Complex} $\ast$ System::getNextAvailableComplex ()}\label{classNFcore_1_1System_776c479cce31fc25b23005f655a4bc21}


\index{NFcore::System@{NFcore::System}!notifyThatComplexIsAvailable@{notifyThatComplexIsAvailable}}
\index{notifyThatComplexIsAvailable@{notifyThatComplexIsAvailable}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::notifyThatComplexIsAvailable (int {\em ID\_\-complex})}\label{classNFcore_1_1System_5b5dd3891bd2378660c0a8091438bb14}


\index{NFcore::System@{NFcore::System}!sim@{sim}}
\index{sim@{sim}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::sim (double {\em time}, long int {\em sampleTimes})}\label{classNFcore_1_1System_a29010e3ec6bbfed4b90ac17dfb6d2ee}


\index{NFcore::System@{NFcore::System}!stepTo@{stepTo}}
\index{stepTo@{stepTo}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::stepTo (double {\em stoppingTime})}\label{classNFcore_1_1System_01e0f14013c19ca7d34546a2d4c649eb}


\index{NFcore::System@{NFcore::System}!singleStep@{singleStep}}
\index{singleStep@{singleStep}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::singleStep ()}\label{classNFcore_1_1System_372aa8d3885b618f39e760bb7e08293e}


\index{NFcore::System@{NFcore::System}!equilibriate@{equilibriate}}
\index{equilibriate@{equilibriate}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::equilibriate (double {\em duration})}\label{classNFcore_1_1System_d0aa8c396f8766d079180d4e272d1e7a}


\index{NFcore::System@{NFcore::System}!equilibriate@{equilibriate}}
\index{equilibriate@{equilibriate}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::equilibriate (double {\em duration}, int {\em statusReports})}\label{classNFcore_1_1System_1d1e5e3faf9073fe82a7670bab4aa9fe}


\index{NFcore::System@{NFcore::System}!registerRxnIndex@{registerRxnIndex}}
\index{registerRxnIndex@{registerRxnIndex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::registerRxnIndex (int {\em rxnId}, int {\em rxnPos}, int {\em rxnIndex})\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_26a7e6a228b01e0617f754098acfc1f8}


\index{NFcore::System@{NFcore::System}!getRxnIndex@{getRxnIndex}}
\index{getRxnIndex@{getRxnIndex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int NFcore::System::getRxnIndex (int {\em rxnId}, int {\em rxnPos}) const\hspace{0.3cm}{\tt  [inline]}}\label{classNFcore_1_1System_2ef2c3b370a452ec7ec8c227f8436c03}


\index{NFcore::System@{NFcore::System}!turnOff\_\-OnTheFlyObs@{turnOff\_\-OnTheFlyObs}}
\index{turnOff\_\-OnTheFlyObs@{turnOff\_\-OnTheFlyObs}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void System::turnOff\_\-OnTheFlyObs ()}\label{classNFcore_1_1System_1e43a194c97cf8111c309c1326d01a67}


\index{NFcore::System@{NFcore::System}!get\_\-A\_\-tot@{get\_\-A\_\-tot}}
\index{get\_\-A\_\-tot@{get\_\-A\_\-tot}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double NFcore::System::get\_\-A\_\-tot () const\hspace{0.3cm}{\tt  [inline, protected]}}\label{classNFcore_1_1System_493b5b1dfdf6028801370e60ca339aec}


\index{NFcore::System@{NFcore::System}!recompute\_\-A\_\-tot@{recompute\_\-A\_\-tot}}
\index{recompute\_\-A\_\-tot@{recompute\_\-A\_\-tot}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::recompute\_\-A\_\-tot ()\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_325e3eba5dfed3ffb9daaa26093c19c3}


\index{NFcore::System@{NFcore::System}!getNextRxn@{getNextRxn}}
\index{getNextRxn@{getNextRxn}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double System::getNextRxn ()\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_e3341dc56abdab48a13b0a9ee4785783}


\index{NFcore::System@{NFcore::System}!outputGroupDataHeader@{outputGroupDataHeader}}
\index{outputGroupDataHeader@{outputGroupDataHeader}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void NFcore::System::outputGroupDataHeader ()\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_663e0e86bb513a99bb2e4189e1f67485}




\subsection{Member Data Documentation}
\index{NFcore::System@{NFcore::System}!NULL\_\-EVENT\_\-COUNTER@{NULL\_\-EVENT\_\-COUNTER}}
\index{NULL\_\-EVENT\_\-COUNTER@{NULL\_\-EVENT\_\-COUNTER}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf System::NULL\_\-EVENT\_\-COUNTER} = 0\hspace{0.3cm}{\tt  [static]}}\label{classNFcore_1_1System_22dbd34534da90b02cdc880d966657ad}


keeps track of null events (ie binding events that have been rejected because molecules are on the same complex) \index{NFcore::System@{NFcore::System}!name@{name}}
\index{name@{name}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}string {\bf NFcore::System::name}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_83bb19575621efcd5ce25cf45a61d289}


arbitrary name of the system \index{NFcore::System@{NFcore::System}!useComplex@{useComplex}}
\index{useComplex@{useComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf NFcore::System::useComplex}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_47a9e12db95ee961d561b729a5f7cb8b}


sets whether or not to dynamically track complexes \index{NFcore::System@{NFcore::System}!useBinaryOutput@{useBinaryOutput}}
\index{useBinaryOutput@{useBinaryOutput}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf NFcore::System::useBinaryOutput}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_47b1b0460ff8f2a09d59e82ab0689188}


set to true to turn on binary output of data \index{NFcore::System@{NFcore::System}!universalTraversalLimit@{universalTraversalLimit}}
\index{universalTraversalLimit@{universalTraversalLimit}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int {\bf NFcore::System::universalTraversalLimit}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_15466949fbf48109800e1d84e5f1f84a}


sets depth to traverse molecules when updating reactant lists \index{NFcore::System@{NFcore::System}!onTheFlyObservables@{onTheFlyObservables}}
\index{onTheFlyObservables@{onTheFlyObservables}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf NFcore::System::onTheFlyObservables}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_bf82fabdf596a0b60aec6f7f43d0a6b9}


sets whether or not observables are calculated on the fly \index{NFcore::System@{NFcore::System}!outputGlobalFunctionValues@{outputGlobalFunctionValues}}
\index{outputGlobalFunctionValues@{outputGlobalFunctionValues}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}bool {\bf NFcore::System::outputGlobalFunctionValues}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_8b358dca2468d9cccd640cb056b1c88c}


\index{NFcore::System@{NFcore::System}!allMoleculeTypes@{allMoleculeTypes}}
\index{allMoleculeTypes@{allMoleculeTypes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf MoleculeType} $\ast$$>$ {\bf NFcore::System::allMoleculeTypes}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_8ecd565025d7a251c816444f85fc3523}


container of all MoleculeTypes in the simulation \index{NFcore::System@{NFcore::System}!allReactions@{allReactions}}
\index{allReactions@{allReactions}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf ReactionClass} $\ast$$>$ {\bf NFcore::System::allReactions}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_81af635890b6645582503977ac993dde}


container of all Reactions in the simulation \index{NFcore::System@{NFcore::System}!allComplexes@{allComplexes}}
\index{allComplexes@{allComplexes}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf Complex} $\ast$ $>$ {\bf NFcore::System::allComplexes}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_96be4fb079574e8e8d7e1b140a16b781}


container of all complexes in the simulation \index{NFcore::System@{NFcore::System}!nextAvailableComplex@{nextAvailableComplex}}
\index{nextAvailableComplex@{nextAvailableComplex}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}queue$<$int$>$ {\bf NFcore::System::nextAvailableComplex}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_3739740fbc3114d5147694b257e1424e}


queue tells us which complexes can be used next \index{NFcore::System@{NFcore::System}!allOutputters@{allOutputters}}
\index{allOutputters@{allOutputters}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf Outputter} $\ast$$>$ {\bf NFcore::System::allOutputters}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_e808a92895ecfacaa262ad3c3ece29b0}


\index{NFcore::System@{NFcore::System}!globalFunctions@{globalFunctions}}
\index{globalFunctions@{globalFunctions}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf GlobalFunction} $\ast$$>$ {\bf NFcore::System::globalFunctions}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_60c88f34361dadaed590d85e38ec52f2}


$<$ manages the outputters of the system container of all global functions available to the system \index{NFcore::System@{NFcore::System}!localFunctions@{localFunctions}}
\index{localFunctions@{localFunctions}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf LocalFunction} $\ast$$>$ {\bf NFcore::System::localFunctions}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_ef80b4b621ee413dea5bbade453f0b2b}


container of all local functions available to the system \index{NFcore::System@{NFcore::System}!necessaryUpdateRxns@{necessaryUpdateRxns}}
\index{necessaryUpdateRxns@{necessaryUpdateRxns}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}vector$<${\bf ReactionClass} $\ast$$>$ {\bf NFcore::System::necessaryUpdateRxns}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_43cb1df4bda30d1c117a0d36e6403e8f}


list of all reactions that need to update propensity after each step \index{NFcore::System@{NFcore::System}!a\_\-tot@{a\_\-tot}}
\index{a\_\-tot@{a\_\-tot}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double {\bf NFcore::System::a\_\-tot}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_1ee9809bac49851e43089fb1b311e3fc}


\index{NFcore::System@{NFcore::System}!current\_\-time@{current\_\-time}}
\index{current\_\-time@{current\_\-time}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}double {\bf NFcore::System::current\_\-time}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_f9e37b7e3106fbc2902b93027bfe4a4b}


\index{NFcore::System@{NFcore::System}!nextReaction@{nextReaction}}
\index{nextReaction@{nextReaction}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}{\bf ReactionClass}$\ast$ {\bf NFcore::System::nextReaction}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_7811d594a66f8aceea0ff9e8c745d01c}


\index{NFcore::System@{NFcore::System}!outputFileStream@{outputFileStream}}
\index{outputFileStream@{outputFileStream}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf NFcore::System::outputFileStream}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_795112f6711e31bed5625c360f91ab81}


\index{NFcore::System@{NFcore::System}!rxnIndexMap@{rxnIndexMap}}
\index{rxnIndexMap@{rxnIndexMap}!NFcore::System@{NFcore::System}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}int$\ast$$\ast$ {\bf NFcore::System::rxnIndexMap}\hspace{0.3cm}{\tt  [protected]}}\label{classNFcore_1_1System_8166822fb8ca819d8f3c1b2d3dcebdf9}


maps reaction index values to a reaction, used for MoleculeTypes to quickly lookup a reaction 

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
/home/msneddon/eclipse/ganymede\_\-cpp/workspace/NFsim\_\-svn/src/NFcore/{\bf NFcore.hh}\item 
/home/msneddon/eclipse/ganymede\_\-cpp/workspace/NFsim\_\-svn/src/NFcore/{\bf system.cpp}\end{CompactItemize}
